package com.kinghunt.misp.common.dto.projectx;

import com.kinghunt.misp.common.dto.reportx.ReportFullDTO;
import com.kinghunt.misp.common.dto.samplex.LimsSampleDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 项目任务信息
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ProjectTaskDTO implements Serializable {
    private static final long serialVersionUID = 4507633133490522885L;

    /**
     * 任务ID
     */
    private Long taskId;

    /**
     * 项目ID
     */
    private Long projectId;

    /**
     * 项目编号
     */
    private String projectNo;

    /**
     * 任务类型
     */
    private Integer taskType;

    /**
     * 任务状态
     */
    private Integer taskStatus;

    /**
     * 任务标题
     */
    private String taskTitle;

    /**
     * 任务描述
     */
    private String taskDescription;

    /**
     * 项目执行描述
     */
    private String execution;

    /**
     * 任务备注
     */
    private String remark;

    /**
     * 任务责任人ID
     */
    private Long taskOwnerId;

    /**
     * 创建人ID
     */
    private Long creatorId;

    /**
     * 创建时间
     */
    private Date gmtCreate;

    /**
     * 更新人ID
     */
    private Long updaterId;

    /**
     * 更新时间
     */
    private Date gmtUpdate;

    /**
     * 任务开始时间
     */
    private Date gmtStart;

    /**
     * 任务结束时间
     */
    private Date gmtEnd;


    /***************************** 以下为关联信息 *****************************/
    /**
     * 样品信息
     */
    private List<LimsSampleDTO> samples;

    /**
     * 设备使用信息
     */
    // TODO: 设备使用信息
    private List<String> deviceUsages;

    // TODO: 耗材使用信息

    // TODO: 菌株使用信息

    /**
     * 实验记录与报告
     */
    private List<ReportFullDTO> reports;

    /**
     * 附件
     */
    private List<ProjectAttachmentDTO> attachments;
}
